// 1. 获取命令行参数（argv[0]=node路径，argv[1]=脚本路径，argv[2...]=用户参数）
const args = process.argv.slice(2); // 截取用户输入的参数（排除前2项）

// 2. 定义“使用说明”
function showHelp() {
  console.log('=== 计算器使用说明 ===');
  console.log('用法：node calc.js <数学表达式>');
  console.log('示例：node calc.js 1+2*3   （输出7）');
  console.log('      node calc.js 10/(2+3) （输出2）');
  console.log('参数：--help / -h  查看使用说明');
  console.log('注意：仅支持合法数学表达式，不支持变量（如a+b）');
}

// 3. 处理参数逻辑
if (args.length === 0) {
  // 无参数：显示使用说明
  console.error('错误：未输入数学表达式！');
  showHelp();
} else if (args[0] === '--help' || args[0] === '-h') {
  // 帮助参数：显示使用说明
  showHelp();
} else {
  // 有参数：取第一个参数作为表达式（忽略多余参数）
  const expr = args[0];
  try {
    // 求值并输出（eval()执行表达式）
    const result = eval(expr);
    console.log(`表达式 "${expr}" 的结果：${result}`);
  } catch (error) {
    // 捕获非法表达式错误
    console.error(`错误：非法数学表达式 "${expr}"！`);
    console.error('错误详情：', error.message);
  }
}